package tipoCliente;

import java.util.List;
import persistencia.DAOException;
import persistencia.DAOFactory;
import persistencia.RNException;

public class TipoClienteRN {

	private TipoClienteDAO tipoClienteDAO = DAOFactory.getTipoClienteDAO();
	private TipoClienteDAOHibernate tipoClienteDAOHibernate = new TipoClienteDAOHibernate();

	public void salvar(TipoCliente tipoCliente) throws RNException {
		try {
			tipoClienteDAO.getSession().beginTransaction();
			tipoClienteDAO.save(tipoCliente);
			tipoClienteDAO.getSession().getTransaction().commit();
		} catch (DAOException e) {
			e.printStackTrace();
			throw new RNException();
		}
	}

	public List<TipoCliente> listar() throws RNException {

		try {
			return tipoClienteDAO.findAll();

		} catch (DAOException e) {
			e.printStackTrace();
			throw new RNException();
		}
	}

	public void deletar(TipoCliente tipoCliente) throws RNException {
		try {
			tipoClienteDAO.getSession().beginTransaction();
			tipoClienteDAO.delete(tipoCliente);
			tipoClienteDAO.getSession().getTransaction().commit();

		} catch (DAOException e) {
			e.printStackTrace();
			throw new RNException();
		}
	}
	
	public TipoCliente buscaPorId(int id){
		return tipoClienteDAOHibernate.buscarPorId(id);
	}
	
	public TipoCliente buscaPorDescricao(String descricao){
		return tipoClienteDAOHibernate.buscarPorDescricao(descricao); 
	}

}
